package com.artisan.springuitls.demos;

import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

/**
 * StringUtils 工具类演示
 * 功能：字符串处理终结者
 * 优势：比 Java 原生更强大，支持 Unicode 空格、智能空值检查
 */
@Component
public class StringUtilsDemo {

    /**
     * 场景：用户表单提交时，安全校验昵称
     */
    public void validateNickname(String nickname) {
        System.out.println("\n========== StringUtils Demo ==========");
        
        // ✅ 一行搞定：自动 trim() + 判空
        if (StringUtils.hasText(nickname)) {
            System.out.println("昵称有效: " + nickname.trim());
        } else {
            throw new IllegalArgumentException("昵称不能为空");
        }
        
        // 💡 扩展：处理中文空格（Java isBlank() 会漏掉）
        String trickyName = "  \u3000张三"; // \u3000 是中文全角空格
        System.out.println("hasText(中文空格): " + StringUtils.hasText(trickyName)); // true
        
        // hasLength vs hasText 对比
        String onlySpaces = "   ";
        System.out.println("hasLength('   '): " + StringUtils.hasLength(onlySpaces)); // true
        System.out.println("hasText('   '): " + StringUtils.hasText(onlySpaces)); // false
        
        // 路径相关操作
        String path = "/user/home/documents/file.txt";
        System.out.println("文件名: " + StringUtils.getFilename(path)); // file.txt
        System.out.println("文件扩展名: " + StringUtils.getFilenameExtension(path)); // txt
        
        // 字符串拼接
        String[] array = {"Java", "Spring", "Boot"};
        System.out.println("拼接数组: " + StringUtils.arrayToCommaDelimitedString(array)); // Java,Spring,Boot
        
        System.out.println("========================================\n");
    }

    /**
     * 演示更多常用方法
     */
    public void demonstrateMoreMethods() {
        // 删除指定字符
        String text = "Hello World!";
        System.out.println("删除空格: " + StringUtils.delete(text, " ")); // HelloWorld!
        
        // 首字母大写/小写
        System.out.println("首字母大写: " + StringUtils.capitalize("hello")); // Hello
        System.out.println("首字母小写: " + StringUtils.uncapitalize("Hello")); // hello
        
        // 删除前后缀
        String url = "http://example.com";
        System.out.println("删除前缀: " + StringUtils.delete(url, "http://")); // example.com
    }
}

